package Model

import "time"

type Paycheck struct {
	itsPayPeriodStartDate  	time.Time
	itsPayPeriodEndDate    	time.Time
	itsGrossPay            	float64
	itsNetPay           	float64
	itsDeductions 			float64
	itsFields 				map[string]string
}

func(pc Paycheck) Paycheck(payPeriodStart,payPeriodEnd time.Time) Paycheck{
	pc.itsPayPeriodStartDate = payPeriodStart
    pc.itsPayPeriodEndDate = payPeriodEnd
	return pc
}

func(pc Paycheck) SetGrossPay(grossPay float64){
	pc.itsGrossPay = grossPay
}

func(pc Paycheck) SetDeductions(deductions float64){
	pc.itsDeductions = deductions
}

func(pc Paycheck) SetNetPay(netPay float64){
	pc.itsNetPay = netPay
}

func(pc Paycheck) GetPayPeriodEndDate() time.Time{
	return pc.itsPayPeriodEndDate
}

func(pc Paycheck) GetGrossPay() float64{
	return pc.itsGrossPay
}

func(pc *Paycheck) GetDeductions() float64{
	return pc.itsDeductions
}

func(pc Paycheck) GetNetPay() float64{
	return pc.GetNetPay()
}

func(pc Paycheck) GetField(name string) string{
	return pc.itsFields[name]
}

func(pc Paycheck) SetField(name,value string){
	pc.itsFields[name] = value
}

func(pc Paycheck) GetPayPeriodStartDate() time.Time{
	return pc.itsPayPeriodStartDate
}